package com.sword.pay.bean.enums;
import java.util.Arrays;
import java.util.Objects;

/**
 * 支付方式
 * 字典: pay_method
 * @author xxm
 * @since 2021/7/26
 */
public enum PayMethodEnum {

    /** wap支付 */
    WAP("pay_wap"),
    /** 应用支付 */
    APP("pay_app"),
    /** web支付 */
    WEB("pay_web"),
    /** 扫码支付 */
    QRCODE("pay_qrcode"),
    /** 付款码 */
    BARCODE("pay_barcode"),
    /** 小程序支付 */
    JSAPI("pay_jsapi"),
    ;

    /** 编码 */
    private final String code;
    /**
     * 根据编码获取枚举
     */
    public static PayMethodEnum findByCode(String code){
        return Arrays.stream(values())
                .filter(o -> Objects.equals(o.getCode(), code))
                .findFirst()
//                .orElseThrow(() -> new ConfigNotExistException("该支付方式不存在"));
                .orElseThrow(() -> new RuntimeException("该支付方式不存在"));
    }

    PayMethodEnum(String channel) {
        this.code = channel;
    }

    public String getCode() {
        return code;
    }
}
